//package com.ruoyi.smartai.service.impl;
//
//import com.ruoyi.common.constant.CustomerPersonaAgents;
//import com.ruoyi.common.constant.MoodGradient;
//import com.ruoyi.common.core.redis.RedisCache;
//import com.ruoyi.common.utils.DateUtils;
//import com.ruoyi.common.utils.StringUtils;
//import com.ruoyi.smartai.entity.DialogueManagement;
//import com.ruoyi.smartai.service.IDialogIntentService;
//import com.ruoyi.smartai.utils.WhatsAPPUtils;
//import com.ruoyi.system.domain.ChatLog;
//import com.ruoyi.system.domain.CustomerInfo;
//import com.ruoyi.system.domain.FansInfo;
//import com.ruoyi.system.domain.StandardScript;
//import com.ruoyi.system.mapper.ChatLogMapper;
//import com.ruoyi.system.mapper.CustomerInfoMapper;
//import com.ruoyi.system.mapper.FansInfoMapper;
//import com.ruoyi.system.mapper.StandardScriptMapper;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//import java.util.Random;
//import java.util.concurrent.*;
//
//@Service
//public class DialogIntentServiceImpl_copy implements IDialogIntentService {
//
//    private static final Logger log = LoggerFactory.getLogger(DialogIntentServiceImpl_copy.class);
//    @Autowired(required = false)
//    private FansInfoMapper fansInfoMapper;
//
//    @Autowired(required = false)
//    private CustomerInfoMapper customerInfoMapper;
//
//    @Autowired(required = false)
//    private StandardScriptMapper standardScriptMapper;
//
//    @Autowired(required = false)
//    private ChatLogMapper chatLogMapper;
//
//
//    @Value("${apiSevicePath.similar_text}")
//    private String similarTextUrl;
//
//    @Value("${apiSevicePath.secketSendmessage}")
//    private String newChatURL;
//
//    @Autowired(required = false)
//    RedisCache redisCache;
//
//    /**
//     * 获取对话意图的方法。
//     * 解析 combinedMessage 并确定对话的意图。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public void getDialogIntent(String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//    }
//
//    /**
//     * 打招呼的方法。
//     * 处理打招呼的对话。
//     *
//     * @param dialogueManagement 对话管理对象
//     * @param fromNumber         发件人的号码
//     * @param toNumber           收件人的号码
//     * @param combinedMessage    合并的消息内容
//     */
//    @Override
//    public String sayHello(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        try {
//            String dialogText = dialogueManagement.getDialogText() + "\n user:" + combinedMessage;
//            String prompt = redisCache.getCacheObject("smart:utils:intent:hello");
//
//            prompt += "\n" + dialogText;
//            String dialogIntent = WhatsAPPUtils.getChatIntent(String.valueOf(prompt),fromNumber);
//            String nextId = "101003";
//            if (dialogIntent.contains("：反")) {
//                nextId = "101004";
//            }
//            StandardScript standardScript = standardScriptMapper.selectStandardScriptById(nextId);
//            //转换到自我介绍
//            String intentData = "persona:customer:" + toNumber + ":introduction";
//            String introductionText = redisCache.getCacheObject(intentData);
//            String cusReply = standardScript.getCustomerReply();
//            cusReply = cusReply.replace("{introduction}", introductionText);
//
////        dialogueManagement.addDialogText(combinedMessage);
//            dialogueManagement.setStepCount(0);
//            //转自我介绍
//            changeScene(cusReply, nextId, toNumber, fromNumber, 2, dialogueManagement, standardScript, true);
//            return prompt;
//        } catch (Exception e) {
//            log.error("sayHello Exception:" + e);
//            return null;
//        }
//
//    }
//
//    /**
//     * 自我介绍的方法。
//     * 处理自我介绍的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String selfIntroduction(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
////        if (dialogueManagement.getStepCount() >= dialogueManagement.getMaxStep()) {
////            String selfIntroductionId = "101006";
////            StandardScript standardScript = standardScriptMapper.selectStandardScriptById(selfIntroductionId);
////            changeScene(standardScript.getCustomerReply(), selfIntroductionId, toNumber, fromNumber, 3, dialogueManagement, standardScript, true);
////            return;
////        }
////        String selfIntroductionPrompt = generalPrompt("自我介绍", dialogueManagement, toNumber, combinedMessage);
////        changeScene(selfIntroductionPrompt, "0", toNumber, fromNumber, 2, dialogueManagement, null, false);
//        return generalPrompt("相互介绍", dialogueManagement, fromNumber, toNumber, combinedMessage, 3, "101006");
//
//    }
//
//
//    /**
//     * 日常生活-食物相关对话的方法。
//     * 处理与食物相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String dailyLifeFood(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        return generalPrompt("日常生活-食物相关", dialogueManagement, fromNumber, toNumber, combinedMessage, 4, "101007");
//    }
//
//    /**
//     * 日常生活-交通相关对话的方法。
//     * 处理与交通相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String dailyLifeTransportation(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        return generalPrompt("日常生活-交通相关", dialogueManagement, fromNumber, toNumber, combinedMessage, 5, "101008");
//    }
//
//    /**
//     * 爱好相关对话的方法。
//     * 处理与爱好相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String hobbies(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        return generalPrompt("爱好相关", dialogueManagement, fromNumber, toNumber, combinedMessage, 6, "101009");
//    }
//
//    /**
//     * 日常生活-周末相关对话的方法。
//     * 处理与周末相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String dailyLifeWeekends(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        return generalPrompt("日常生活-周末活动", dialogueManagement, fromNumber, toNumber, combinedMessage, 7, "101010");
//    }
//
//    /**
//     * 文化话题相关对话的方法。
//     * 处理与文化话题相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String culturalTopics(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
////        generalPrompt("文化话题", dialogueManagement, fromNumber, toNumber, combinedMessage, 8);
//        return generalPrompt("文化相关话题", dialogueManagement, fromNumber, toNumber, combinedMessage, 7, "101010");
//    }
//
//    /**
//     * 用户名相关对话的方法。
//     * 处理与用户名相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String userName(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 想要交流的语言相关对话的方法。
//     * 处理与语言交流相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String wantToCommunicateLanguages(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 提到年龄相关对话的方法。
//     * 处理与年龄相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String mMentionAge(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 想要图片相关对话的方法。
//     * 处理与图片相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String wantPictures(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 想要视频相关对话的方法。
//     * 处理与视频相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String wantVideos(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 性暗示相关对话的方法。
//     * 处理与性暗示相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String sexualSuggestion(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//    /**
//     * 推荐产品相关对话的方法。
//     * 处理与产品推荐相关的对话。
//     *
//     * @param fromNumber      发件人的号码
//     * @param toNumber        收件人的号码
//     * @param combinedMessage 合并的消息内容
//     */
//    @Override
//    public String recommendedProducts(DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage) {
//        // 实现逻辑
//        return null;
//    }
//
//
//    /**
//     * 获取回复用户的问题是否需要发多条
//     *
//     * @param nextId
//     * @param toNumber
//     * @param fromNumber
//     * @param message
//     */
//    public String checkAndSendMessage(String nextId, String toNumber, String fromNumber, String message, StandardScript standardScript) {
//        String sendMes = "";
//        if (message.contains("-&-")) {
//            String[] mesaages = message.split("-&-");
//            for (String mes : mesaages) {
//                mes = replcaeMess(mes, toNumber);
//                sendMes += WhatsAPPUtils.sendMessage(newChatURL, toNumber, fromNumber, "0", mes, nextId, true);
//                WhatsAPPUtils.randomThread(1, 3);
//            }
//        } else if (message.contains("&") || message.contains("〜") || message.contains("！") || message.contains("？") || message.contains("~") || message.contains("～")) {
//            String[] messages = message.split("[&〜！~？~～]");
//            for (String mes : messages) {
//                mes = replcaeMess(mes, toNumber);
//                sendMes += WhatsAPPUtils.sendMessage(newChatURL, toNumber, fromNumber, "0", mes, nextId, true);
//                WhatsAPPUtils.randomThread(3, 2);
//            }
//        } else {
//            message = replcaeMess(message, toNumber);
//            sendMes = WhatsAPPUtils.sendMessage(newChatURL, toNumber, fromNumber, "0", message, nextId, true);
//        }
//        checkAndSendMessage(standardScript, newChatURL, toNumber, fromNumber);
//        return sendMes;
//    }
//
//
//    private static final ExecutorService executor = Executors.newFixedThreadPool(10);
//
//    public static void checkAndSendMessage(StandardScript standardScript, String newChatURL, String toNumber, String fromNumber) {
//        try {
//            if (standardScript != null && StringUtils.isNotNull(standardScript.getImageUrl())) {
//                if (standardScript.getStepType().equals("1")) {
//                    CompletableFuture.runAsync(() -> {
//                        for (int i = 0; i < Integer.valueOf(standardScript.getImageUrl()); i++) {
//                            String image = WhatsAPPUtils.getImagePath(standardScript.getScenesId(), toNumber, i + 1);
//                            String imageData = WhatsAPPUtils.sendMessage(newChatURL, toNumber, fromNumber, "1", image, standardScript.getId(), false);
//                            log.info(toNumber + " to " + fromNumber + " 发送图片：" + imageData);
//                            WhatsAPPUtils.randomThread(3, Integer.valueOf(5));
//                        }
//                    }, executor);
//                } else if (standardScript.getStepType().equals("2")) {
//                    CompletableFuture.runAsync(() -> {
//                        String image = WhatsAPPUtils.getVideoPath(standardScript.getScenesId(), toNumber, 1);
//                        String imageData = WhatsAPPUtils.sendMessage(newChatURL, toNumber, fromNumber, "1", image, standardScript.getId(), false);
//                        log.info(toNumber + " to " + fromNumber + " 发送视频：" + imageData);
//                        WhatsAPPUtils.randomThread(3, Integer.valueOf(5));
//                    }, executor);
//                }
//            }
//        } catch (Exception e) {
//            log.error("checkAndSendMessage error:" + e);
//        }
//    }
//
//    public String replcaeMess(String mes, String toNumber) {
//        if (mes.contains("{introduction}")) {
//            String keys = "persona:customer:" + toNumber + ":introduction";
//            mes = redisCache.getCacheObject(keys);
//        }
//        if (mes.contains("{city}")) {
//            String keys = "persona:customer:" + toNumber + ":city";
//            String mess = redisCache.getCacheObject(keys);
//            mes = mes.replace("{city}", mess);
//        }
//        return mes;
//    }
//
//    /**
//     * 更新fans会话记录
//     *
//     * @return
//     */
//    public String updateFansDialogRedis(String contactNumber, String fansId, String personaId, StandardScript standardScript, boolean isNewScenes, DialogueManagement dialogueManagement) {
//        if (dialogueManagement == null) {
//            dialogueManagement = new DialogueManagement();
//        }
//        dialogueManagement.setDialogId(personaId);
//        dialogueManagement.setCustomerNumber(contactNumber);
//        dialogueManagement.setFansNumber(fansId);
//        dialogueManagement.setSendingTime(DateUtils.dateTime());
//        dialogueManagement.addReturnedIds(personaId);
//
//        if (standardScript != null) {
//            dialogueManagement.setDaysNumber(String.valueOf(standardScript.getDaysNumber()));
//            dialogueManagement.setScenesId(String.valueOf(standardScript.getScenesId()));
//            dialogueManagement.setStepId(String.valueOf(standardScript.getStepId()));
//            dialogueManagement.setMaxStep(Integer.valueOf(standardScript.getMaxStep()));
//            dialogueManagement.setNextStepId(standardScript.getNextStepId());
//            dialogueManagement.setDialogText(standardScript.getDialogText());
//            dialogueManagement.setCusReply(standardScript.getCustomerReply());
////            dialogueManagement.addDialogText(standardScript.getCustomerReply());
//        } else {
//            Integer stepId = Integer.valueOf(dialogueManagement.getStepId()) + 1;
//            dialogueManagement.setStepId(stepId + "");
//        }
//        int stepCounts = dialogueManagement.getStepCount();
//        dialogueManagement.setStepCount(stepCounts + 1);
//        redisCache.setCacheObject(WhatsAPPUtils.getFansDiodlogKey(contactNumber, fansId), dialogueManagement);
//
//        FansInfo fansInfo = fansInfoMapper.selectChatByClientNumber(fansId);
//        if (standardScript != null) {
//            //同步到fans基本信息
//            fansInfo.setDaysNumber(String.valueOf(standardScript.getDaysNumber()));
//            fansInfo.setScenesId(String.valueOf(standardScript.getScenesId()));
//            fansInfo.setStepId(String.valueOf(standardScript.getStepId()));
//        } else {
//            String stepId = fansInfo.getStepId();
//            if (StringUtils.isNotNull(stepId)) {
//                stepId = (Integer.valueOf(fansInfo.getStepId()) + 1) + "";
//            } else {
//                stepId = "2";
//            }
//            fansInfo.setStepId(stepId);
//        }
//        fansInfoMapper.updateDaysNumberByClientNumber(fansInfo);
//
//        return contactNumber;
//    }
//
//
//    /**
//     * 转换场景
//     *
//     * @param cusReply
//     * @param nextId
//     * @param toNumber
//     * @param fromNumber
//     * @param dialogScenesId
//     * @param dialogueManagement
//     * @param standardScript
//     */
//    private String changeScene(String cusReply, String nextId, String toNumber, String fromNumber, int dialogScenesId, DialogueManagement dialogueManagement, StandardScript standardScript,
//                               boolean isNewScenes) {
//        try {
//            String reply = checkAndSendMessage(nextId, toNumber, fromNumber, cusReply, standardScript);
//            if (isNewScenes) {
//                List<String> dialogData = new ArrayList<>();
//                dialogData.add(reply);
//                dialogueManagement.setDialogList(dialogData);
//            } else {
//                dialogueManagement.addDialogText(reply);
//            }
//            dialogueManagement.setDialogScenesId(dialogScenesId);
//            if (standardScript != null) {
//                standardScript.setDialogText(cusReply);
//                standardScript.setCustomerReply(reply);
//            }
//            updateFansDialogRedis(toNumber, fromNumber, "0", standardScript, true, dialogueManagement);
//            return reply;
//        } catch (Exception e) {
//            log.error("changeScene Exception:" + e);
//            return null;
//        }
//    }
//
//
//    private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
//
//    public void randomThread(String sceneName, DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage, int dialogScenesId, String scenesId) {
//        String keys = "change:" + fromNumber + ":static";
//        if (redisCache.hasKey(keys)) {
//            int statics = redisCache.getCacheObject(keys);
//            if (statics == 1) {
//                return;
//            }
//        }
//        redisCache.setCacheObject(keys, 1);
//
//        Random random = new Random();
//        int delay = 60 + random.nextInt(90 - 60 + 1);
//        scheduler.schedule(() -> {
//            // 在这里放置需要延迟执行的代码
//            String selfIntroductionId = scenesId;
//            dialogueManagement.setStepCount(0);
//            StandardScript standardScript = standardScriptMapper.selectStandardScriptById(selfIntroductionId);
//            changeScene(standardScript.getCustomerReply(), selfIntroductionId, toNumber, fromNumber, dialogScenesId, dialogueManagement, standardScript, true);
//            redisCache.setCacheObject(keys, 0);
//        }, delay, TimeUnit.SECONDS);
//    }
//
//
//    private String generalPrompt(String sceneName, DialogueManagement dialogueManagement, String fromNumber, String toNumber, String combinedMessage, int dialogScenesId, String scenesId) {
//        try {
//            // 将当前消息记录添加到对话管理器中
//            dialogueManagement.addDialogText(combinedMessage);
//
//            // 构造 Redis 中的 key，用于获取客户角色信息
//            String keys = "persona:customer:" + toNumber + ":agents";
//            CustomerPersonaAgents agent = redisCache.getCacheObject(keys);
//
//            // 根据场景名称、客户信息和代理人信息生成提示语（Prompt）
//            String selfIntroductionPrompt = getAgentPrompt(agent, toNumber, fromNumber, sceneName);
//            log.info("Prompt:" + selfIntroductionPrompt);
//
//            String[] prefixes = {"[Cisco]", "[cisCo]", "[cisco]", "[" + agent.getCustomerName() + "]", "]"};
//            String reponeBody = WhatsAPPUtils.prefixesBody(selfIntroductionPrompt, prefixes,fromNumber);
//            // 对回复内容进行清理，移除多余的符号和换行符
//            reponeBody = WhatsAPPUtils.replaceReponeBody(reponeBody);
//
//            // 根据回复内容和当前场景更新对话状态
//            changeScene(reponeBody, "0", toNumber, fromNumber, dialogScenesId - 1, dialogueManagement, null, false);
//
//            // 如果对话步数达到最大步数，则触发随机线程处理
//            if (dialogueManagement.getStepCount() >= dialogueManagement.getMaxStep()) {
//                randomThread(sceneName, dialogueManagement, fromNumber, toNumber, combinedMessage, dialogScenesId, scenesId);
//            } else {
////                String finalReponeBody = reponeBody;
////                CompletableFuture.runAsync(() -> {
////                    pullPicIntent(agent, fromNumber, toNumber, finalReponeBody);
////                });
//            }
//
//            // 返回处理后的回复内容
//            return reponeBody;
//        } catch (Exception e) {
//            // 如果发生异常，记录日志并返回 null
//            log.info("generalPrompt:" + e);
//            return null;
//        }
//    }
//
//
//    @Override
//    public String formatPrompt(String fansId, String cusNumber, int limit) {
//        StringBuilder promptStringBuilder = new StringBuilder();
//        CustomerInfo cus = customerInfoMapper.checkContactNumberUnique(cusNumber);
//
//        List<ChatLog> chatlogList = chatLogMapper.selectChatLogByChatType(fansId, limit);
//        // 对 chatlogList 进行倒序排序
//        for (int i = chatlogList.size() - 1; i >= 0; i--) {
//            ChatLog chatLog = chatlogList.get(i);
//            if (chatLog.getUserType().equals("0")) {
//                if (StringUtils.isNotNull(chatLog.getTranslateText())) {
//                    promptStringBuilder.append("[").append(cus.getContactName()).append("]:").append(chatLog.getTranslateText()).append("\n");
//                } else {
//                    promptStringBuilder.append("[").append(cus.getContactName()).append("]:").append(chatLog.getText()).append("\n");
//                }
//            } else {
//                if (StringUtils.isNotNull(chatLog.getTranslateText())) {
//                    promptStringBuilder.append("[user]:").append(chatLog.getTranslateText()).append("\n");
//                } else {
//                    promptStringBuilder.append("[user]:").append(chatLog.getText()).append("\n");
//                }
//            }
//        }
//
//        return promptStringBuilder.toString();
//    }
//
//    /**
//     * 获取回复的是否含有需要发送图片的意图getWeather body
//     *
//     * @param agent
//     * @param fansId
//     * @param customer
//     * @param message
//     */
//    private void pullPicIntent(CustomerPersonaAgents agent, String fansId, String customer, String message) {
//        try {
//            String characterImage = agent.getCharacterImage();
//            if (StringUtils.isNotNull(characterImage)) {
//                String intentPrompt = redisCache.getCacheObject("smart:utils:picintent");
//                String[] imagesText = characterImage.split("\n");
//                StringBuilder images = new StringBuilder();
//                for (String text : imagesText) {
//                    if (text.contains(":")) {
//                        String[] pic = text.split(":");
//                        images.append(pic[0] + "、");
//                    }
//                }
//                // 如果 images 最后是 '、'，则去掉最后的 '、'
//                if (images.length() > 0 && images.charAt(images.length() - 1) == '、') {
//                    images.deleteCharAt(images.length() - 1);
//                    images.append("等");
//                }
//                //如果images最后是、，则去掉最后的、
//                intentPrompt = intentPrompt.replace("{piclistt}", images.toString());
//                intentPrompt = intentPrompt.replace("{chatlog}", message);
//                String[] prefixes = {"[意图]:", "]:", "]"};
//                String reponeBody = WhatsAPPUtils.prefixesBody(intentPrompt, prefixes,fansId);
//                // 对回复内容进行清理，移除多余的符号和换行符
//                reponeBody = WhatsAPPUtils.replaceReponeBody(reponeBody);
//
//                if (StringUtils.isNotNull(reponeBody) || !reponeBody.contains("null")) {
//                    String imageKey = "persona:customer:" + customer + ":images";
//                    Map<String, String> imageMap = redisCache.getCacheObject(imageKey);
//                    String imagePath = imageMap.get(reponeBody);
//                    if (StringUtils.isNotNull(imagePath)) {
//                        // 将图片路径按分号分割成数组
//                        String[] imageList = imagePath.split(";");
//                        // 过滤出图片或视频路径
//                        List<String> mediaList = new ArrayList<>();
//                        for (String path : imageList) {
//                            if (path.contains("mp4") || path.contains("jpg") || path.contains("png")) {
//                                mediaList.add(path);
//                            }
//                        }
//                        // 如果没有可用的图片或视频，直接返回
//                        if (mediaList.isEmpty()) {
//                            log.warn("No available media (jpg, png, mp4) found.");
//                            return;
//                        }
//                        // 随机选择一张图片或视频
//                        Random random = new Random();
//                        String selectedPath = mediaList.get(random.nextInt(mediaList.size()));
//                        // 发送图片或视频
//                        WhatsAPPUtils.sendMessage(newChatURL, customer, fansId, "1", selectedPath, "101", false);
//                    }
//                }
//            }
//        } catch (Exception e) {
//            log.error("pullPicIntent Exception:" + e);
//        }
//    }
//
//    private String getAgentPrompt(CustomerPersonaAgents agent, String customerNumber, String fansId, String topic) {
//        //客服agents参数
//        String prompt = "";
//        //人物形象
//        prompt += agent.getCharacterProfile() + "\n";
//        if (agent.isTimeSwitch()) {
//            String cityTime = WhatsAPPUtils.getCityTime(customerNumber);
//            prompt += "你所在地的时间：" + cityTime + "\n";
//        }
//        if (agent.isWeatherSwitch()) {
//            String weather = WhatsAPPUtils.getWeather(customerNumber);
//            prompt += "现在的天气情况：" + weather + "\n";
//        }
//
//        //沟通话题
////        String topicContent = redisCache.getCacheObject("persona:customer:topic");
////        topicContent = topicContent.replace("{topic}", topic);
//        prompt += agent.getTopic() + "\n 聊天记录：\n";
//
//        if (agent.isContextSwitch()) {
//            String context = formatPrompt(fansId, customerNumber, agent.getContextHistoryLength());
//            prompt += context;
//        }
//        String replyContent = agent.getReplyRequirement().replace("{gradient}", getGradient(agent.getMoodGradient()));
//        prompt += replyContent;
//        prompt = prompt.replace("{name}", agent.getCustomerName());
//        prompt = prompt.replace("{city}", agent.getCity());
//        return prompt;
//    }
//
//    private String getGradient(MoodGradient moodGradient) {
//        StringBuilder promptStringBuilder = new StringBuilder();
//        if (moodGradient.getDailyTrivia() > 0) {
//            promptStringBuilder.append(moodGradient.getDailyTrivia() + "% 日常琐事;");
//        }
//        if (moodGradient.getHumorousPlayful() > 0) {
//            promptStringBuilder.append(moodGradient.getHumorousPlayful() + "% 幽默俏皮;");
//        }
//        if (moodGradient.getTeasingHint() > 0) {
//            promptStringBuilder.append(moodGradient.getTeasingHint() + "% 挑逗暗示;");
//        }
//        if (moodGradient.getExcitementAnticipation() > 0) {
//            promptStringBuilder.append(moodGradient.getExcitementAnticipation() + "% 兴奋期待;");
//        }
//        if (moodGradient.getSexualOpenness() > 0) {
//            promptStringBuilder.append(moodGradient.getSexualOpenness() + "% 性开放;");
//        }
//        return promptStringBuilder.toString();
//    }
//}
